const express = require('express');
const app = express();
app.get('/server', (req, res) => {
    //设置响应头  允许跨域
    res.setHeader('Access-Control-Allow-Origin','*');
    res.send("HELLO! GET！");
})
app.all('/server', (req, res) => {
    //设置响应头  允许跨域
    res.setHeader('Access-Control-Allow-Origin','*');
    //自定义请求头
    res.setHeader('Access-Control-Allow-Headers','*');
    res.send("HELLO! POST！");
})
app.all('/json-server', (req, res) => {
    //设置响应头  允许跨域
    res.setHeader('Access-Control-Allow-Origin','*');
    //自定义请求头
    res.setHeader('Access-Control-Allow-Headers','*');
    //json数据
    const data = {
        name: 'HELLO JSON!'
    }
    let str = JSON.stringify(data);
    res.send(str);
})

app.get('/ie', (req, res) => {
    //设置响应头  允许跨域
    res.setHeader('Access-Control-Allow-Origin','*');
    res.send("HELLO! IE -4！");
})
//网络超时
app.get('/delay', (req, res) => {
    //设置响应头  允许跨域
    res.setHeader('Access-Control-Allow-Origin','*');
    setTimeout(() => {
        res.send("HELLO! delay了啊");
    }, 3000);
    
})
//jQuery
app.all('/jquery-server', (req, res) => {
    //设置响应头  允许跨域
    res.setHeader('Access-Control-Allow-Origin','*');
    let data = {
        name: 'jQuery'
    }
    setTimeout(function(){
        res.send(JSON.stringify(data));
    },3000)
    
})

//JSONP
app.all('/jsonp-server', (req, res) => {
    let data = {
        message: 'JSONP-666'
    }
    let str = JSON.stringify(data);
    res.end(`handle(${str})`); 
})

//JSONP用户检测
app.all('/user-check-server', (req, res) => {
    let data = {
        exist: 1,
        message: '用户已存在'
    }
    let str = JSON.stringify(data);
    res.end(`handle(${str})`); 
})

//jquery-jsonp
app.all('/jquery-jsonp-server', (req, res) => {
    let data = {
        name: '空空雨夜',
        situation: ['178','65','18']
    }
    let str = JSON.stringify(data);
    //接收callback参数
    let cb = req.query.callback;
    res.end(`${cb}(${str})`); 
})

//CORS
app.all('/cors-server', (req, res) => {
    res.setHeader('Access-Control-Allow-Origin','*');//第二个参数值得是允许请求的网页，这里是所有网页可以请求接口
    let data = {
        name: '空空雨夜',
        situation: ['178','65','18']
    }
    let str = JSON.stringify(data);
    //接收callback参数
    res.end(str); 
})

app.listen(8000, () => {
    console.log("8000端口已启动");
})